classdef jwlong_34460a_class
    % 1、执行构造函数
    % multimeter = jwlong_34460a_class;
    % 2、执行连接函数
    % [multimeter.obj,multimeter.idn]=...
    %     multimeter.Conect('keysight','USB0::0x2A8D::0x1601::MY60000299::0::INSTR');
    % 3、执行设置
    % multimeter.SetCurrDC(multimeter);
    
    properties
        obj % 连接仪器的对象       
        idn % 保存仪器的编号      
    end
    
    methods
        function multimeter = jwlong_34460a_class
            %  构造此类的实例
        end
    end
    
    methods(Static)      
        function [obj,idn] = Conect(company,visa_address)
            % 连接仪器，同时读取仪器编号
            obj=visa(company,visa_address);
            fopen(obj);
            fprintf(obj,'*IDN?');
            idn = fscanf(obj);
        end
        
        function SetCurrDC(multimeter)
            % 设置 DC档的电流测试 自动选量程
            fprintf(multimeter.obj,'CONF:CURR:DC AUTO;\n');  % DC档 电流测试 自动选量程
            fprintf(multimeter.obj,'SAMP:COUN 1;\n');  % 设置平均数
%             fprintf(multimeter.obj,'INIT;\n'); %设置触法模式
        end   
        
        function SetCurrDCmA(multimeter,range)
            % 设置 DC档的电流测试 自动选量程
            fprintf(multimeter.obj,['CONF:CURR:DC ',num2str(range),' mA;\n']);  % DC档 电流测试 自动选量程
            fprintf(multimeter.obj,'SAMP:COUN 1;\n');  % 设置平均数
%             fprintf(multimeter.obj,'INIT;\n'); %设置触法模式
        end          
        
        
        function [data,unit]=ReadData(multimeter)
            % 读取数据data和对应的单位unit  
            fprintf(multimeter.obj,'INIT;\n'); %设置触法模式
            fprintf(multimeter.obj,'FETC?;\n'); 
            % 等待测量完成并将所有可用的测量结果复制到仪器的输出缓冲区。
            % 读数保留在读数存储器中。
            readdata1=fscanf(multimeter.obj);
            data=str2double(readdata1);
            fprintf(multimeter.obj,'DATA:LAST?;\n');
            % 返回最后一次进行的测量。
            % 您可以在任何时间执行此查询，即使在一系列测量过程中。
            readdata2=fscanf(multimeter.obj);
            str=strsplit(readdata2,{' ','\n'});
            unit=char(str(2));               
        end
        
        
    end
end

